﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using ProyectoVeranoAECAasp.AccesoDatos.Clases;
using ProyectoVeranoAECAasp.AccesoDatos.ClasesMiscelaneas;

namespace ProyectoVeranoAECAasp.Negocios.Clases
{
    public class ProcesosGestionBandejaSols
    {
        ProcedimientosBaseDatos negociadorBaseDatos;


        // - CONSTRUCTOR -----
        public ProcesosGestionBandejaSols()
        {
            negociadorBaseDatos = new ProcedimientosBaseDatos();
        }


        // - METODOS -----
        // - llamar_ejecutaSP_ObtenerSolicitudesSegunFiltro: para llamar al método de la capa
        // de acceso a datos que permite obtener las solicitudes por filtro
        public List<Elementos_SP_ObtenerSolicitudesSegunFiltro> llamar_ejecutaSP_ObtenerSolicitudesSegunFiltro(int p_estadoChBPendientes,
            int p_estadoChBAprobadas, int p_estadoChBDenegadas, String p_UsuarioLogin,
            String p_FechaIni, String p_FechaFin)
        {

            List<Elementos_SP_ObtenerSolicitudesSegunFiltro> listaSolis = null;
            //----
            listaSolis = negociadorBaseDatos.ejecutaSP_ObtenerSolicitudesSegunFiltro(p_estadoChBPendientes,
            p_estadoChBAprobadas, p_estadoChBDenegadas, p_UsuarioLogin, p_FechaIni, p_FechaFin);
            //----
            return listaSolis;
        }

        // - llamar_ejecutaSP_DatosSolicitudSeleccionada: para llamar al método de la capa
        // de acceso a datos que permite obtener datos de una solicitud
        public List<String> llamar_ejecutaSP_DatosSolicitudSeleccionada(int p_IDSolic)
        {

            List<String> listaDatosSolic = null;
            //----
            listaDatosSolic = negociadorBaseDatos.ejecutaSP_DatosSolicitudSeleccionada(p_IDSolic);
            //----
            return listaDatosSolic;
        }

        // - llamar_ejecutaSP_ObtenerHorarioSolic: para llamar al método de la capa
        // de acceso a datos que permite obtener horarios de una solicitud
        public List<String> llamar_ejecutaSP_ObtenerHorarioSolic(int p_IDSolic)
        {

            List<String> listaHorasSolic = null;
            //----
            listaHorasSolic = negociadorBaseDatos.ejecutaSP_ObtenerHorarioSolic(p_IDSolic);
            //----
            return listaHorasSolic;
        }

        // - llamar_ejecutaSP_ActualizarEstadoSolic: para llamar al método de la capa
        // de acceso a datos que permite actualizar una solicitud
        public int llamar_ejecutaSP_ActualizarEstadoSolic(int p_IDSolic, int p_IDEstadoSol)
        {
            int estadoEjecucionSP = 0;
            //----
            estadoEjecucionSP = negociadorBaseDatos.ejecutaSP_ActualizarEstadoSolic(p_IDSolic, p_IDEstadoSol);
            //----
            return estadoEjecucionSP;
        }

        // - llamar_ejecutaSP_ObtenerTodasSolicitudesAprobadas: llama al método que
        // llama al SP que trae todas las solicitudes aprobadas
        public List<int> llamar_ejecutaSP_ObtenerSolsXEstadoMatchFechaEsp(String p_fecha, String p_espacio, int p_estado)
        {
            List<int> listaIDSolicsAprob;
            //----
            listaIDSolicsAprob = negociadorBaseDatos.ejecutaSP_ObtenerSolsXEstadoMatchFechaEsp(p_fecha, p_espacio, p_estado);
            //----
            return listaIDSolicsAprob;
        }

        // - llamar_ejecutaSP_ObtenerLogins: llama al método que
        // llama al SP que trae todos los logins de usuario
        public List<String> llamar_ejecutaSP_ObtenerLogins()
        {
            List<String> listaLogins;
            //----
            listaLogins = negociadorBaseDatos.ejecutaSP_ObtenerLogins();
            //----
            return listaLogins;
        }
    }
}
